Determining a physical location of a VoIP endpoint device utilized to originate an emergency call

ABSTRACT

In one embodiment, a method and system for enabling determination of a physical location of a Voice Over Internet Protocol (VoIP) endpoint device utilized to originate an emergency call are described. A network location associated with the VoIP endpoint device is automatically detected. The VoIP endpoint device is coupled with a VoIP network via a port of a network device (e.g., a wireline or a wireless network device). The network location includes an identity of the network device and an identity of the port. The network location is saved and upon initiation of an emergency call, the VoIP endpoint device forwards the network location to a device capable of converting the network location to a physical location.

TECHNICAL FIELD

Embodiments in accordance with the present invention generally pertainto determining a physical location of a Voice Over Internet Protocol(VoIP) endpoint device utilized to originate an emergency call.

BACKGROUND

Many countries, including the United States, have an emergency telephonenumber (e.g., 9-1-1 in the United States) that a caller can dial tocontact local emergency services for assistance. In general, for thelocal emergency service to be able to respond quickly, a caller'slocation needs to be determined efficiently.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates block diagrams of an emergency call routing system,upon which embodiments can be implemented.

FIG. 2A and 2B illustrate block diagrams of an Internet Protocol (IP)phone configured to automatically detect, save, and update its networklocation in operation, upon which embodiments can be implemented.

FIG. 3 illustrates a flowchart of a method of enabling determination ofa physical location of a Voice Over Internet Protocol (VoIP) endpointdevice utilized to originate an emergency call, upon which embodimentscan be implemented.

FIG. 4 illustrate block diagrams of a system for enabling determinationof an actual location of a communications device on an emergency call ina network, upon which embodiments can be implemented.

DETAILED DESCRIPTION OF THE DRAWINGS

Reference will now be made in detail to embodiments of the presentinvention, examples of which are illustrated in the accompanyingdrawings. While the invention will be described in conjunction withthese embodiments, it will be understood that they are not intended tolimit the invention to these embodiments. On the contrary, the inventionis intended to cover alternatives, modifications and equivalents, whichcan be included within the spirit and scope of the invention as definedby the appended claims. Furthermore, in the following detaileddescription of the present invention, numerous specific details are setforth in order to provide a thorough understanding of the presentinvention. However, it will be evident to one of ordinary skill in theart that the present invention can be practiced without these specificdetails. In other instances, well known methods, procedures, components,and circuits have not been described in detail as not to unnecessarilyobscure aspects of the invention.

Some portions of the detailed descriptions that follow are presented interms of procedures, logic blocks, processing, and other symbolicrepresentations of operations on data bits within a computer memory.These descriptions and representations are the means used by thoseskilled in the data processing arts to most effectively convey thesubstance of their work to others skilled in the art. A procedure, logicblock, process, etc., is here, and generally, conceived to be aself-consistent sequence of steps or instructions leading to a desiredresult. The steps are those requiring physical manipulations of physicalquantities. Usually, though not necessarily, these quantities take theform of electrical or magnetic signals capable of being stored,transferred, combined, compared, and otherwise manipulated in a computersystem. It has proven convenient at times, principally for reasons ofcommon usage, to refer to these signals as bits, bytes, values,elements, symbols, characters, terms, numbers, or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the followingdiscussions, it is appreciated that throughout the present invention,discussions utilizing terms such as “setting,” “storing,” “scanning,”“receiving,” “sending,” “disregarding,” “entering,” or the like, referto the action and processes of a computer system or similar electroniccomputing device, that manipulates and transforms data represented asphysical (electronic) quantities within the computer system's registersand memories into other data similarly represented as physicalquantities within the computer system memories or registers or othersuch information storage, transmission or display devices.

In order for an emergency response service to function well, anefficient way to locate an emergency caller is usually needed. Yet, theconventional method of determining an emergency caller's location wasdesigned with legacy public switched telephone networks (PSTN) in mindand newer forms of voice communications, such as wireless and Voice OverInternet Protocol (VoIP) telephony is not as compatible withconventional location tracking methods.

With conventional legacy PSTN, an emergency caller's telephone numbercan be mapped to a specific civic or geographical location. This worksbecause with legacy PSTN, a telephone number is associated with a phonejack fixed in its location. Consequently, an emergency call can betracked by using the emergency's caller's telephone number to find itscorresponding location.

In contrast to legacy PSTN systems, an IP phone's telephone number isoften associated with the IP phone module itself. Hence, the IP phonecan be unplugged and moved from one Ethernet port in one physicallocation to another Ethernet port in another physical location whilemaintaining the same phone number. As a result, an IP phone's telephonenumber may not be able to be mapped into a particular physical location.Hence, an emergency response service may have trouble tracking thelocation of an emergency call that originated from an IP phone.

To address these concerns, embodiments set forth methods and systems forenabling determination of a physical location of a Voice Over InternetProtocol (VoIP) endpoint device utilized to originate an emergency call.

In one example, a network location associated with the VoIP endpointdevice, (e.g., a IP phone) is automatically detected. The VoIP endpointdevice is coupled with a VoIP network via a port of a network device.The network location comprises an identity of the network device andport information, such as the port number utilized to connect the VoIPendpoint device to the VoIP network. The network location is saved andupon initiation of an emergency call, the VoIP endpoint device forwardsthe network location to a device capable of converting the networklocation to a physical location.

FIG. 1 illustrates block diagrams of an emergency call routing system100, upon which embodiments can be implemented. System 100 includes anIP endpoint device 102, a network device 130 for connecting IP endpointdevice 102 to the VoIP network, call server 108, Emergency ServicesGateway (ESGW) 110, VoIP Positioning Center (VPC) 112, EmergencyServices Zone Routing Database(ERDB) 114, Automatic LocationIdentification (ALl) Database 122, Selective Routing Database (SRDB)124, E-911 selective router 126, (PSAP) 128, Dynamic Host ConfigurationProtocol (DHCP) server 104, and Location Information Server (LIS) 106.

Although emergency call routing system 100 is shown and described ashaving certain numbers and types of elements, the embodiments are notnecessarily limited to the exemplary implementation. That is, emergencycall routing system 100 can include elements other than those shown, andcan include more than one of the elements that are shown. For example,emergency call routing system 100 can include a greater or fewer numberof ESGWs than the one ESGW (ESGW 110) shown. Similarly, in anotherexample, emergency call routing system 100 can include a networklocation database (not shown).

IP endpoint device 102 is connected to the network via a port of networkdevice 130. IP endpoint device 102 (e.g., an IP phone), in oneembodiment, automatically detects and saves its associated networklocation 132. Network location 132 includes network device identityinformation and port information (e.g., port number used by the IPendpoint device 102) on network device 130. The IP endpoint device 102includes emergency parameter information, such as Presence InformationData Format—Location Objects (PIDF-LO) and/or Location Key (LK), and inthe present embodiment, the emergency parameter information includesnetwork location 132. In one example, when the IP endpoint device 102makes an emergency call, the emergency parameter, including networklocation 132 is sent within the emergency (e.g., E-9-1-1) callinitiation request. In one embodiment, the emergency call initiationrequest is sent with Session Initiation Protocol (SIP). In otherembodiments, the emergency call initiation request can be sent usingother compatible protocols.

In one embodiment, using SIP, IP endpoint device 102 sends callinitiation request to call server 108. A call server 108 can be anentity in a private or public IP domain that provides service to the IPendpoint device 102. The call server 108 can, in one embodiment,interwork with other elements in the IP domain used to support emergencyservices call routing. The call server 108 can use Session InitiationProtocol (SIP) and/or another VoIP signaling protocol within its servingdomain. The call server 108 receives the call initiation request andsends a routing request to the VoIP Positioning Center (VPC) 112 usingthe information received in the call request. The routing request may besent directly or after certain pre-processing. For example, the networklocation may be converted to its corresponding civic location beforeinquiring a VPC if the VPC does not support the network location.

The Location Information Server (LIS) 106 can be used as a repositoryfor location information, such as civic address and/or geo-spatiallocation attributes correlated with a particular physical location. Inone embodiment, the LIS 106 is configured with mappings betweenindividual location information and a logical representation of thephysical locations with which they are associated. In one example, theLIS 106, in one embodiment, is capable of mapping network location 132of IP endpoint device 102 into a civic address and/or geo-coordinates.In one embodiment, Dynamic Host Configuration Protocol (DHCP) server 104is coupled with LIS 106 and can provide configuration information to IPdevices and/or IP endpoints. In one example, the DHCP server 104 isutilized to allocate dynamically assigned IP addresses to an IP device(e.g., IP endpoint device 102).

In one embodiment, once LIS 106 is identified, VPC 112 queries LIS 106and receives a physical location (e.g., geo-coordinates and/or civiclocation) associated with the network location 132. Also, in oneembodiment, the VPC can map network location 132 to an E.164 telephonynumber. Furthermore, in one embodiment, VoIP Positioning Center (VPC)112 provides routing information to support the routing of VoIPemergency calls and cooperates in delivering location information to thePublic Safety Answering Point (PSAP) 128 over an ALI DB 122.

In one embodiment, the VPC 112 uses the physical location to obtainemergency services zone related routing information from the ERDB 114.Emergency Services Zone Routing Database (ERDB) 114 includes routinginformation associated with each Emergency Services Zone in a servingarea. The ERDB 114 identifies the emergency services routing number,emergency service, and CRN that facilitates routing via the appropriateESGW 110 to the selective router (SR) 126. VPC 112 uses the receivedrouting information to allocate an available emergency services querykey associated with the caller's location and sends a response to therouting request for the emergency call. The VPC 112 also maps the IPendpoint device's callback tel.uri and physical location intoappropriate fields.

Call server 108 uses the emergency services routing number received fromVPC 112 to select ESGW 110. Emergency Services Gateway (ESGW) 110, inone embodiment, serves as the signaling and media interworking pointbetween the IP domain and conventional trunks to the emergency service(e.g., E9-1-1) router that use, in one embodiment, multi-frequencysignaling. The ESGW utilizes the routing information provided in thereceived call setup signaling to select the appropriate trunk andproceeds to signal call setup to the selective router 126 usingEmergency Services Query Key (ESQK) to represent the calling partynumber and/or automatic number identification information. In thepresent embodiment, ESGW 110 is selected and used to route the emergencycall. In one embodiment, ESGW 110 uses the received emergency servicesrouting number to select an outgoing route (e.g., a trunk group) to theselective router 126. Selective router 126 receives the emergency calland identifies Public Safety Answering Point (PSAP) 128 for theemergency call. The PSAP 128 sends an automatic location identificationquery to the ALI DB 122, which in turn queries VPC 112 for physicallocation information and callback number.

FIGS. 2A and 2B illustrate block diagrams of an Internet Protocol (1P)phone configured to automatically detect, save, and update its networklocation in operation, upon which embodiments can be implemented. FIG.2A includes an IP phone 202, first network device 204, call server 208,and second network device 206.

While FIGS. 2A and 2B are shown and described as having certain numbersand types of elements, the embodiments are not necessarily limited tothe exemplary implementation. That is, FIGS. 2A and 2B can includeelements other than those shown, and can include more than one of theelements that are shown. For example, FIGS. 2A and 2B can include agreater or fewer number of network devices than the two network devices(first network device 204 and second network device 206) shown.

In FIG. 2A, IP phone 202 is coupled with call server 208 via a port offirst network device 204. IP phone 202, in one example, automaticallydetects its associated network location 210, which includes networkidentity information of first network device 204 and the port number onfirst network device 204 that IP phone 202 uses. IP phone 202 saves thenetwork location 210, and in the event of an emergency call, forwardsthe network location 210 with a call initiation request.

Also, although the present embodiment is described in the context of anon-wireless IP phone, a wireless IP phone can be used in otherembodiments. In one embodiment, a wireless IP phone automaticallydetects the network device identity of the network device as well as theradio port on the network device that it communicates with. In oneexample, as a wireless IP phone roams from one network device to anothernetwork device (e.g., from network device 204 to network device 206) itautomatically detects, saves and updates its current network location.

In FIG. 2B, in the present embodiment, IP phone 202 is de-coupled withfirst network device 204 and coupled with second network device 206. InFIG. 2B, IP phone 202 is coupled with call server 208 via a port of thesecond network device 206. In one embodiment, an updated version ofnetwork location, network location 212, is detected and saved by IPphone 202 to reflect the possible physical location change that may haveoccurred. With reference still to FIG. 2B, in one example, IP phone 202initiates an emergency call and the updated version of network location,network location 212, is forwarded to call server 208. In contrast topassive approaches, the present embodiment automatically detects, saves,and forwards its updated network location to a call server as it ismoved from one location to another location, which is important forwireless IP phone users.

FIG. 3 illustrates a flowchart 300 of a method of enabling determinationof a physical location of a Voice Over Internet Protocol (VoIP) endpointdevice utilized to originate an emergency call, upon which embodimentscan be implemented. Although specific steps are disclosed in flowchart300, such steps are exemplary. That is, embodiments are well suited toperforming various other or additional steps or variations of the stepsrecited in flowchart 300. It is appreciated that the steps in flowchart300 can be performed in an order different than presented.

At block 302, the process starts.

At block 304, a network location associated with the VoIP endpointdevice is automatically detected. The VoIP endpoint device is coupledwith a VoIP network via a port of a network device. Also, the networklocation comprises an identity of the network device and portinformation. In one embodiment, port information can include port numberof the port on the network device utilized to connect the VoIP endpointdevice to the VoIP network. In one embodiment, automatic detection isimplemented by utilizing a Cisco Detection Protocol (CDP). In anotherembodiment, automatic detection is implemented by utilizing a SimpleNetwork Management Protocol (SNMP). In other embodiments, automaticdetection is implemented by utilizing other types of protocol compatiblewith VoIP endpoint device.

At block 306, the network location is saved. In one embodiment, thenetwork location is saved onto a non-volatile memory, such as certainwritable Read-Only Memory (ROM), flash memory, hard disks, floppy disks,magnetic tapes, optical disk drives, and Magnetic Random Access Memory(MRAM). In another embodiment, the network location is saved onto avolatile memory, such as Random Access Memory (RAM), Dynamic RandomAccess Memory (DRAM), Static Random Access Memory (SRAM), ContentAddressable Memory, dual-ported RAM, and/or other types volatile memory.

At block 308, an emergency call is initiated with the VoIP endpointdevice. The VoIP endpoint device can be a wireless IP phone, a regularIP phone, and/or other types of compatible devices. In addition, thenetwork location can be a media access control (NIAC) address, otherlayer 2 addresses (e.g., an E.164 number), and/or other types ofdesignation information.

At block 310, the network location is forwarded to a device capable ofconverting the network location to a physical location. In oneembodiment, the network location is forwarded using Session InitiationProtocol (SIP). Also, in one example, the network location is includedin the SIP Initiation message (e.g., SIP INVITE). Also, physicallocation can be a set of geo-coordinates and/or a civic location. In oneembodiment, the device is capable of converting the network locationinto a Master Street Address Guide (NSAG) validated civic location.

At block 312, the network location is automatically forwarded to a callserver. A call server can be an entity in a private or public IP domainthat provides service to the VoIP endpoint device. The call server can,in one embodiment, interwork with other elements in the IP domain usedto support emergency services call routing. The call server can useSession Initiation Protocol (SIP) and/or another VoIP signaling protocolwithin its serving domain.

At block 314, a record for the network location is created in a LocationInformation System (LIS). The Location Information Server (LIS) can beused as a repository for location information, such as civic addressand/or geo-spatial location attributes correlated with a particularphysical location. In one embodiment, the LIS is configured withmappings between individual location information and a logicalrepresentation of the physical locations with which they are associated.In one example, the LIS, in one embodiment, is capable of mappingnetwork location of VoIP endpoint device into a civic address and/orgeo-coordinates.

At block 316, the process ends.

FIG. 4 illustrate block diagrams of a system 400 for enablingdetermination of an actual location of a communications device on anemergency call in a network, upon which embodiments can be implemented.System 400 includes a communications device 408, a detector 402 fordetermining a network location of the communications device, a memory404 for storing the network location, and a transmitter 406 forforwarding the network location to a device capable of mapping thenetwork location to the actual location. Detector 404 and transmitter406 are coupled with memory 404.

Though System 400 are shown and described as having certain numbers andtypes of elements, the embodiments are not necessarily limited to theexemplary implementation. That is, System 400 can include elements otherthan those shown, and can include more than one of the elements that areshown. For example, System 400 can include a greater or fewer number ofnetwork devices than the one transmitter (transmitter 406) shown.

The elements of system 400 efficiently cooperate to enable determinationof an actual location (e.g., civic location and/or geo-coordinates) of acommunications device on an emergency call in a network. In oneembodiment, the communications device is an Internet Protocol (IP)phone.

Detector 402 of the communications device 408 determines a networklocation of the communications device 408. The communications device 408is coupled with the network via a network device having a plurality ofports. Also, a network device identity is associated with the networkdevice. In one example, network location of the communications device408 includes the network device identity and port information (e.g.,port number of the port used by communications device 408 to couple withthe network).

Memory 404 stores the network location and transmitter 406 forwards thenetwork location to a device capable of mapping the network location tothe actual location. The device, in one embodiment, is further capableof utilizing emergency service query key (ESQK) to retrieve a civiclocation associated with the network location. Also, the device can becoupled with an automatic number identification (AND) database and/or anautomatic location information (ALI) database.

In one embodiment, the transmitter 406 forwards the network locationupon initiation of an emergency call by the communications device 408.In another embodiment, the transmitter 406 forwards the network locationupon receiving network device identity and port information from thenetwork device. In one embodiment, the network device can be a repeateraccess point.

To summarize, embodiments allow the physical location of a VoIP endpointdevice (e.g., wireless IP phone) used to make an emergency call to bedetermined efficiently. The network location associated with the VoIPendpoint device is automatically detected, saved, and forwarded to adevice capable of converting the network location to a physical location(e.g., a civic location).

Different from the discovery-based location approach, embodiments do notrequire maintenance of large subsystems that generate a significantamount of network traffic. Also, the discovery-based location approachis passive and may not work well for certain VoIP endpoint devices, suchas wireless IP phones. For instance, a discovery sweep may be performedin intervals, such as once every two hours, to discover the location ofIP phones. However, in one example, if a wireless IP phone is moved fromone location to a different location soon after the completion of onediscovery sweep, the call server would not be aware of this change untila subsequent discovery sweep is performed. In contrast to this passiveapproach, in one embodiment, a wireless IP phone automatically detects,saves, and forwards its associated network address to a call server asit is moved from one location to another location.

Moreover, in one embodiment, the inter-cluster cross-reference of theemergency routing data (e.g., 911 routing data) for a proper PublicSafety Answering Point (PSAP) is not needed, which may help to simplifythe design of an emergency response subsystem, such as the E911application subsystem.

Additionally, in comparison to a Structured Wireless Aware Network (e.g,a Cisco Structured Wireless Aware Network based on 802.11 association)client tracking system, embodiments can provide more accurate trackingwhen an IP phone is connected via a hub or a repeater access point. WithSWAN client tracking, in one example, if a caller is connected via arepeater access point that forwards the call to a registered accesspoint, SWAN is limited to using the registered access point instead ofthe repeater access point, which is closer to the caller, to determinethe caller's location. Advantageously, in one embodiment, the networklocation of an IP phone can be utilized to track down the repeateraccess point to more accurately determine a caller's location.

Furthermore, network location is a more natural representation of an IPendpoint device's location because network location is easier to adoptand to implement in a VoIP network.

In the foregoing specification, embodiments of the invention have beendescribed with reference to numerous specific details that can vary fromimplementation to implementation. Thus, the sole and exclusive indicatorof what is, and is intended by the applicants to be the invention is theset of claims that issue from this application, in the specific form inwhich such claims issue, including any subsequent correction. Hence, nolimitation, element, property, feature, advantage or attribute that isnot expressly recited in a claim should limit the scope of such claim inany way. The specification and drawings are, accordingly, to be regardedin an illustrative rather than a restrictive sense.

1. A method for locating an endpoint in a voice over Internet Protocol(VoIP) network, the method comprising: in response to the endpointconnecting to the network, automatically determining at the endpoint anetwork device and a port on the network device through which theendpoint is connected to the network, the network device and the portcollectively indicating a network location of the endpoint; andcommunicating from the endpoint information identifying the networkdevice and the port to facilitate determination of a physical locationof the endpoint according to the network location of the endpoint. 2.The method of claim 1, wherein the network device is in the network. 3.The method of claim 1, wherein the endpoint is a mobile telephone. 4.The method of claim 1, wherein the endpoint connecting to the networkcomprises the endpoint being associated or reassociated to an accesspoint (AP).
 5. The method of claim 1, wherein the endpoint connecting tothe network comprises the endpoint plugging into a jack coupled to thenetwork.
 6. The method of claim 1, wherein communicating the informationfrom the endpoint comprises communicating the information from theendpoint at initiation of a call from the endpoint.
 7. The method ofclaim 6, wherein the call is an E911 call.
 8. The method of claim 1,wherein communicating the information from the endpoint comprises usingan E911 initiation message to communicate the information from theendpoint.
 9. The method of claim 1, wherein determining the networkdevice and the port comprise using an extension of Cisco DiscoveryProtocol (CDP) or Simple Network Management Protocol (SNMP) to determinethe network device and the port.
 10. Logic for locating an endpoint in avoice over Internet Protocol (VoIP) network, the logic encoded in one ormore media for execution and when executed operable to: in response tothe endpoint connecting to the network, automatically determine at theendpoint a network device and a port on the network device through whichthe endpoint is connected to the network, the network device and theport collectively indicating a network location of the endpoint; andcommunicate from the endpoint information identifying the network deviceand the port to facilitate determination of a physical location of theendpoint according to the network location of the endpoint.
 11. Thelogic of claim 10, wherein the network device is in the network.
 12. Thelogic of claim 10, wherein the endpoint is a mobile telephone.
 13. Thelogic of claim 10, wherein the endpoint connecting to the networkcomprises the endpoint being associated or reassociated to an accesspoint (AP).
 14. The logic of claim 10, wherein the endpoint connectingto the network comprises the endpoint plugging into a jack coupled tothe network.
 15. The logic of claim 10, operable to communicate theinformation from the endpoint at initiation of a call from the endpoint.16. The logic of claim 15, wherein the call is an E911 call.
 17. Thelogic of claim 10, operable to use an E911 initiation message tocommunicate the information from the endpoint.
 18. The logic of claim10, operable to use an extension of Cisco Discovery Protocol (CDP) orSimple Network Management Protocol (SNMP) to determine the networkdevice and the port.
 19. A method for locating an endpoint in a voiceover Internet Protocol (VoIP) network, the method comprising: receivinginformation communicated from an endpoint connected to the network, theinformation identifying a network device and a port on the networkdevice through which the endpoint is connected to the network, thenetwork device and the port collectively indicating a network locationof the endpoint; and using the information communicated from theendpoint, determining a physical location of the endpoint according tothe network location of the endpoint.
 20. The method of claim 19,wherein the network device is in the network.
 21. The method of claim19, wherein the endpoint is a mobile telephone.
 22. The method of claim19, wherein the endpoint communicated the information at initiation of acall from the endpoint.
 23. The method of claim 22, wherein the call isan E911 call.
 24. The method of claim 19, wherein the endpoint used anE911 initiation message to communicate the information.
 25. Logic forlocating an endpoint in a voice over Internet Protocol (VoIP) network,the logic encoded in media and when executed operable to: receiveinformation communicated from an endpoint connected to the network, theinformation identifying a network device and a port on the networkdevice through which the endpoint is connected to the network, thenetwork device and the port collectively indicating a network locationof the endpoint; and use the information communicated from the endpointto determine a physical location of the endpoint according to thenetwork location of the endpoint.
 26. The logic of claim 25, wherein thenetwork device is in the network.
 27. The logic of claim 25, wherein theendpoint is a mobile telephone.
 28. The logic of claim 25, wherein theendpoint communicated the information at initiation of a call from theendpoint.
 29. The logic of claim 28, wherein the call is an E911 call.30. The logic of claim 25, wherein the endpoint used an E911 initiationmessage to communicate the information.
 31. A system for locating anendpoint in a voice over Internet Protocol (VoIP) network, the systemcomprising: an endpoint operable to: in response to the endpointconnecting to the network, automatically determine a network device anda port on the network device through which the endpoint is connected tothe network, the network device and the port collectively indicating anetwork location of the endpoint; and communicate to a serverinformation identifying the network device and the port to facilitatedetermination of a physical location of the endpoint according to thenetwork location of the endpoint; and the server, operable to receivethe information communicated from the endpoint and use the informationcommunicated from the endpoint to determine a physical location of theendpoint according to the network location of the endpoint.